package cc.linker.steplink.crm.merchanth5.dao.acs;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MerchantWalletDao {

    Map<String,Object> getaccount(String customerId);

    Map<String,Object> walletInfo(String customerId);

    Integer mobileCount(@Param(value = "phone") String phone, @Param(value = "customerId") String customerId);

    Boolean ifExistAccount(Map<String, String> params);

    String getUbankIdById(String bankId);

    Map<String,Object> getBindBank(String customerId);

    Long getBalance(String customerId);

    Long getBalance2(String customerId);

    Map<String,Object> getTotalBalance(@Param("customerId") String customerId);

    Boolean addBank(Map<String, String> params);

    Boolean ifExistWithdraw(@Param(value = "customerId") String customerId,@Param(value = "customerType") String customerType);

    Boolean activeBank(Map<String, String> params);

    Map<String,Object> getGoldCoin(String customerId);

    String getOrgIdByCid(String customerId);

    Map<String,Object> getChargeInfo(String orgId);

    Boolean addWithDraw(Map<String, Object> params);

    Boolean addWithdrawTransferInfo(Map<String,Object> params);

    Boolean updateWithdrawTransferInfo(@Param("orderSn") String orderSn);

    Boolean updateWithdrawTransferRefundInfo(@Param("orderSn") String orderSn,@Param("refundSuccess") Integer refundSuccess);

    Boolean addAccountTrade(Map<String, Object> params);

    Boolean updateCustomerBalance(@Param(value = "customerId") String customerId,@Param(value = "amount") Long amount);

    Boolean updateSalerBalance(@Param(value = "customerId") String customerId,@Param(value = "amount") Long amount);

    Map<String ,Object> getWithDrawDetail(Map<String, Object> params);

    List<Map<String,Object>> detailList(String customerId);

    List<Map<String, Object>> coinList(String customerId);

    void updateWithDrawStatus(@Param(value = "withDrawId") String withDrawId, @Param(value = "status") String status);

    void addOrgBalance(@Param(value = "orgId") String orgId, @Param(value = "serviceAmount")  Long serviceAmount);

    /**
     * 通过打回的busiSn查提现记录
     */
    Map<String, Object> getWithDrawDetailReturn(Map<String, Object> params);

    /**
     * 用户开户状态
     */
    Map<String, Object> getAccountStatusByCustomerId(Map<String, Object> map);

    List<Map<String, Object>> getSettlementDetail(@Param("customerId") String customerId, @Param("amountType") Integer amountType);

    //金钱结算明细
    List<Map<String, Object>> getMoneySettlementDetail(@Param("customerId") String customerId, @Param("amountType") Integer amountType);

    Map<String, Object> getFeeDetail(Map<String,Object> param);

    List<Map<String, Object>> getFeeDetailList(Map<String,Object> param);

    Integer getOrderGoodsNum(Map<String, Object> da);

    Map<String, Object> getEnrollOrder(Map<String, Object> da);

    List<Map<String, Object>> getRefundInfoList(Integer recId);

    void insertWithdrawFeeDetail(Map<String, Object> map);

    List<Map<String, Object>> coinListNew(String customerId);
}
